home *** CD-ROM | disk | FTP | other *** search
-
- Sozobon C Compiler, release 2.0
-
- The new 'cc' command has revised and added options. This list of
- options replaces the one in the old documentation. Note that all
- options now have upper-case synonyms so that the compiler can be
- used with shells and TOS versions that convert all parameters to
- upper case.
-
- -c (or -C) : just generate object files
- -O (or -z or -Z) : run the optimizer
- -S (or -a or -A) : dont assemble, just run the compiler
- -Ipath : path for include files
- -Dname : define 'name'
- -Dname=value : define 'name' to be 'value'
- -Uname : undefine (builtin) 'name'
- -o file (or -a or -A) : put the executable in 'file'
- -f file (or -F) : read a list of file names from 'file'
- -m mapfile (or -M) : generate a map file
- -v (or -V) : print what is being done (verbose)
- -n (or -N) : print what you would do, but do nothing
- -p (or -P) : generate profiling calls
- -Tdir (or -k or -K) : put temporary files in 'dir'
- -t (or -h or -H) : dont remove compiler temporary files
- -g (or -G) : compiler for debugging
- -r (or -q or -Q) : include the floating library libm.a
- -lxxx (or -j or -J) : include the library name "libxxx.a"
- -s (or -y or -Y) : dont generate a symbol table for debugger
-
- In particular note the following changes:
- The flag for floating point used to be '-f' ... it is now '-r'
- Symbol tables will be generated by default now, use '-s' to
- not generate one (the old default was to NOT generate
- a symbol table unless you used the 't' option)
- Use the '-g' option if you plan to use the debugger 'szadb'
- and you are using the optimizer
-
-
- Release 2.0 of the compiler, contains two main new features in addition
- to various bug fixes and performance enhancements. Consult sozobon.doc
- and rel12.doc for a discussion of previous features.
-
- 1) Long external names
-
- The old Alcyon object file format provided for only 8 characters in
- external names. Since the compiler prefixes names with a '_' char,
- you were effectively limited to 7 characters. Since more and more
- C source code uses longer names, we have extended the Alcyon format
- to allow names of any length. The assembler, link-loader, and
- debugger understand the new format. Other tools have also been updated.
-
- Old libraries can still be used with the compiler since the loader
- has been designed to recognise both old and new format object files.
-
- 2) Cross tools under UNIX
-
- Sources have been modified to allow use of the compiler, assembler,
- linker, etc (but not 'make' or 'szadb' obviously) under UNIX systems.
- Even systems with Intel byte-order and strict alignment requirements
- can be used. Makefiles for unix are called 'make.unx'. You should
- set the BYTEORDER macro appropriately. Also grep the source for
- references to '/home/hans' and change them as needed.
-
- The support of UNIX is experimental and we do NOT guarantee that you
- will have no trouble at all. However, it has been tested somewhat
- on Sun, Intel 386 and Intel 860 systems. Good luck.
-
- 3) Details of the new symbol table format
-
- An extended symbol table begins with a symbol which has a special
- name, flags and value:
-
- name: 'SozobonX'
- flags: 0x42 (absolute text)
- value: 0x87654321
-
- After this are the usual symbols except that symbols with 9 or more
- characters in length have special name extension symbols after them.
- Each name extension symbol adds up to 8 characters to the length of
- the name. It is recognized because of the special flags and value:
-
- flags: 0x42 (absolute text)
- value: 0x87654321
-
- Note that no normal symbol would have this combination of flags and value
- since all text symbols have an EVEN value.
-
- If you tried to use the old 'nm' with a new object file, you would see
- what it thinks are a lot of these funny symbols. Thus old tools MAY
- work with the new object and binary files.
-